dojo.provide("dojot._base");

(function(){
	Function.prototype.method = function(name,func){
		if(typeof this.prototype[name] !== 'function'){
			this.prototype[name]  = func;
		}
		return this;
	}
	/**
	 *  在string上添加把实体转换为字符方法
	 */
	String.method("deentityify",function(){
		var entity = {
			amp: '&',
			lt:  '<',
			gt:  '>'
		};
		return function () {		
			return this.replace(/&([^&;]+);/g,
				function (a, b) {
				    var r = entity[b];
				    return typeof r === 'string' ? r : a;
				}
			);
		};
	}());
	
	/**
	 *  在string上添加把指定字符转换为实体方法
	 */
	String.method("entityify",function(){
		var entity = {
			"&": '&amp;',
			"<":  '&lt;',
			">":  '&gt;'
		};
		return function () {		
			return this.replace(/[&|<|>]/g,
				function (a) {
				    return entity[a];
				}
			);
		};
		
	}());
	/**
	 *判断一个字符串是否为空
	*/
	String.method("isEmpty",function(){
		return function () {		
			return  /^\s*$/.test(this); 
		};
	}());
	
	String.method("trim",function(){
		return function () {		
			var str = this.replace(/^\s+/,'');
			for(var i = str.length - 1; i >= 0; i--){
				if(/\S/.test(str.charAt(i))){
					str = str.substring(0, i + 1);
					break;
				}
			}
			return str;
		}
	}());
})();